<html>
<head><meta charset="utf-8"><title>marking implicit predicates? · t-compiler/help · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/index.html">t-compiler/help</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/marking.20implicit.20predicates.3F.html">marking implicit predicates?</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="241332266"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/marking%20implicit%20predicates%3F/near/241332266" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Yu [they/she] <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/marking.20implicit.20predicates.3F.html#241332266">(Jun 02 2021 at 23:27)</a>:</h4>
<p>it looks like by the time a TraitPredicate makes it to error reporting stages, there's no information on whether it originally came from an implicit bound (such as implicit <code>Sized</code> for type parameters). is it considered too expensive to tag them with that information?</p>



<a name="241336336"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/marking%20implicit%20predicates%3F/near/241336336" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/marking.20implicit.20predicates.3F.html#241336336">(Jun 03 2021 at 00:27)</a>:</h4>
<p>That kind of information can be stored in the <code>ObligationCause</code></p>



<a name="241336349"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/marking%20implicit%20predicates%3F/near/241336349" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/marking.20implicit.20predicates.3F.html#241336349">(Jun 03 2021 at 00:27)</a>:</h4>
<p>as the original <code>Obligation</code> should be available in error reporting code</p>



<a name="241340144"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/marking%20implicit%20predicates%3F/near/241340144" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Yu [they/she] <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/marking.20implicit.20predicates.3F.html#241340144">(Jun 03 2021 at 01:39)</a>:</h4>
<p>thanks. <code>Bounds</code> (mostly dealt with in astconv) looks like the lowest level structure that still has knowledge of whether a set of bounds includes the implicit <code>Sized</code> bound. it looks like by the time my current function of interest <code>check_type_bounds</code> runs, any <code>Bounds</code> have been flattened to <code>Predicate</code>s or something like that, which lack that bit of information</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>